-- vim:fileencoding=utf-8:foldmethod=marker:foldmarker={{{,}}}

-- Working plugins marked as "(on)"
-- Plugins with dependencies marked as "+ DEPS"
-- In the end added interesting plugins with full links and short description

return {

	-- {{{ NvChad installed plugins
	-- List located in ~/.local/share/nvim/lazy/NvChad/lua/nvchad/plugins/init.lua

	-- {{{ Conform - Formatters (works on save) (on)
	-- Plugin for formatting
	{
		"stevearc/conform.nvim",
		event = "BufWritePre", -- uncomment for format on save
		config = function()
			require "configs.conform"
		end,
	},
	-- }}}

	-- {{{ nvim-lspconifg (on)

	{
		"neovim/nvim-lspconfig",
		config = function()
			require("nvchad.configs.lspconfig").defaults()
			require "configs.lspconfig"
		end,
	},

	-- }}}

	-- {{{ Mason - Install LSP things (for Python + HTML) (on)
	-- ":Mason" for launch

	{
		"williamboman/mason.nvim",
		opts = {
			ensure_installed = {
				"lua-language-server",
				"stylua",
				"html-lsp",
				"css-lsp",
				"pyright",
				"pylint,",
				--"prettier",
				--"eslint-lsp",
				--"gopls",
				--"js-debug-adapter",
				--"typescript-language-server",
			},
		},
	},

	-- }}}

	-- {{{ nvim-treesitter - Syntax highlight (on)
	-- ":TSInstallInfo" for all supported languages list

	{
		"nvim-treesitter/nvim-treesitter",
		opts = {
			ensure_installed = {
				"vim",
				"lua",
				"vimdoc",
				"html",
				"css",
				--"typescript",
				--"javascript",
				--"go",
				"python",
			},
		},
	},

	-- }}}

	-- {{{ indent-blankline - show indents visually

	{
		"lukas-reineke/indent-blankline.nvim",
		config = function()
			require "configs.indent-blankline"
		end,
	},

	-- }}}

	-- {{{ cmp - autocompletion

	{
		"hrsh7th/nvim-cmp",
		opts = function()
			require "configs.nvim-cmp"
		end,
	},

	-- }}}

	-- {{{ WhichKey - show available keymaps as popup

	{
		"folke/which-key.nvim",
		keys = { "<leader>", "<c-r>", "<c-w>", '"', "'", "`", "c", "v", "g" },
		cmd = "WhichKey",
		config = function(_, opts)
			dofile(vim.g.base46_cache .. "whichkey")
			require("which-key").setup(opts)
			require "configs.which-key"
		end,
	},

	-- }}}

	-- {{{ nvim-colorizer - show color in realtime. For example - "#FF0000" will be

	{
		"NvChad/nvim-colorizer.lua",
		event = "User FilePost",
		config = function()
			require "configs.nvim-colorizer"
		end,

		-- opts = {
		-- 	user_default_options = { names = false },
		-- 	filetypes = {
		-- 		"*",
		-- 		"!lazy",
		-- 	},
		-- },
		-- config = function(_, opts)
		-- 	require("colorizer").setup(opts)
		--
		-- 	-- execute colorizer as soon as possible
		-- 	vim.defer_fn(function()
		-- 		require("colorizer").attach_to_buffer(0)
		-- 	end, 0)
		-- end,
	},

	-- }}}

	-- End NvChad installed plugins}}}

	-- {{{ Plugins added by sekhali

	-- {{{ Dressing - UI (on)
	-- Improve nvim UI (e.g. rename is showing not in bottom, but near renaming text)
	{
		"stevearc/dressing.nvim",
		lazy = false,
		opts = {},
	},
	-- }}}

	-- {{{ nvim-lint - Linters support (on)
	-- formatter - makes code better
	-- linter - tells you where you wrote code as asshole

	{
		"mfussenegger/nvim-lint",
		event = "VeryLazy",
		config = function()
			require "configs.nvim-lint"
		end,
	},

	-- }}}

	-- {{{ leap - Impreved movement (on)
	-- s[char] for search FORward
	-- S[char] for search BACKward
	-- [Enter] for move FORward
	-- [Backspace] for move BACKward

	{
		"ggandor/leap.nvim",
		lazy = false,
		config = function()
			require("leap").add_default_mappings(true)
		end,
	},

	-- }}}

	-- {{{ trouble - Show diagnostics (on) + DEPS
	{
		"folke/trouble.nvim",
		lazy = false,
		dependencies = { "nvim-tree/nvim-web-devicons" },
	},
	-- }}}

	-- {{{ todo-comments - highlight todo comments (on)
	{
		"folke/todo-comments.nvim",
		dependencies = { "nvim-lua/plenary.nvim" },
		lazy = false,
		config = function()
			require("todo-comments").setup()
		end,
	}, -- To make a plugin not be loaded
	-- }}}

	-- {{{ vim-fugitive - use Git inside vim (on)

	{
		"https://github.com/tpope/vim-fugitive",
	},

	-- }}}

	-- {{{ vim-flog - git branch viewer for vim (on) + DEPS
	-- requires luajit 2.1 or lua 5.1

	{
		"rbong/vim-flog",
		dependencies = {
			"tpope/vim-fugitive",
		},
		lazy = false,
	},

	-- }}}

	-- {{{ vim-python-docstring - docstring generator for Python (on)

	{
		"https://github.com/pixelneo/vim-python-docstring",
		ft = { "python" },
	},

	-- }}}

	-- {{{ vim-multiple-cursors - multiple cursors for vim (on)

	{
		"https://github.com/terryma/vim-multiple-cursors",
		lazy = false,
	},

	-- }}}

	-- {{{ pretty-fold - better folds for nvim (on)
	-- this is a fork with fixes for nvim 0.10

	{
		"https://github.com/bbjornstad/pretty-fold.nvim",
		lazy = false,
		config = function()
			require "configs.pretty-fold"
		end,
	},

	-- }}}

	-- End plugins added by sekhali}}}
}

-- {{{ May be install it later <a name="may-be-later"></a>

--[[

1. AI autocompletion (Copilot alternative) 
https://github.com/Exafunction/codeium.vim

2. A framework for interacting with tests within NeoVim.
https://github.com/nvim-neotest/neotest

3. Debug Adapter Protocol client implementation for NeoVim
https://github.com/mfussenegger/nvim-dap

4. A UI for nvim-dap
https://github.com/rcarriga/nvim-dap

5. Properly configures LuaLS for editing your Nvim config by lazily updating your workspace libraries.
https://github.com/folke/lazydev.nvim

6. Single tabpage interface for easily cycling through diffs for all modified files for any git rev.
https://github.com/sindrets/diffview.nvim

7. Better quickfix window
https://github.com/kevinhwang91/nvim-bqf

8. 

--]]

-- }}}
